Devlog 1 - Representational Politics

Welcome to the inaugural INOCULATE Devlog! This is the first in a series of devlogs detailing the current progress I’m making on INOCULATE, alongside explaining my design process.

If you’re wondering what INCOLUATE is, the elevator pitch is that it’s a node-based pseudo-RTS about ideological warfare. For further details, I’d recommend you play the game jam build here , which is serving as the springboard for the rest of the game.

Now, with all that out of the way:

The Political Spectrum

The first major change I knew I wanted to make to INOCULATE was the way political opinions were tracked and displayed, though I don’t do this without some internal debate. One of the big goals for Game Jam INOCULATE was specificity : You believe in Climate Change, the rights of minorities and that wealth inequality is a problem, and you are trying to ensure others believe the same thing. For a game that was gonna be out publicly and that iintentionally has a kind of nasty energy, I wanted to ensure my politics were clear in the game, less they become warped.

That said, this approach comes with problems, one of which is that very political specificity. While my political worldview being present in the game is important, it also feels somewhat natural that I might want players to work within different ideological factions over the course of a campaign. That said, I do not feel comfortable with asking, nor allowing, any player to deny the rights of minorities, nor climate change, nor wealth inequality. In this sense, some abstraction is good for stopping players from being in moral quagmires. In terms of game design affordances, it also doesn’t help that the three perspectives felt completely detached from one another, failing to form a coherent ideology. Given I already had some plans for special abilities based on ideological viewpoint, I knew I needed these to be more clearly linked to one another. And that relates to perhaps the most fundamental problem, UI / UX: A Node’s political ideology is the most important piece of information in the game, and in the game jam build, the player needs to do alot of reading before they can act. Given this data is functionally discrete, I knew there would be a way to abstract it out to make it way easier to parse at a glance.

The original display for Inoculate, with nodes crowded by words in a menu"

In trying to resolve this, I went immediately to the notion of a 2 dimensional political axes diagram. This methodology for displaying political ideology isn’t one I particularly like in reality, and it’s really on the opposite end of specificity from what I had previously. However, one of the fun things for me to navigate in designing this game is that compromise, i.e when and where I tilt in the design favour of real-world politics or fun gameplay (for example, the unreal but fun notion that almost everyone is willing to change their political ideology). Moving people around on the political spectrum map sits right in the middle of that compromise, being easy and intuitive to understand at a glance while also still being connected to some form of political reality.*

This does change alot gameplay-wise, most notably that there are now just 2 vectors on which ideology is judged rather than 3 (an ideology cube seemed like a bit of a nightmare). However, this does massively simplify the player’s actions, changing them from “Educate on Climate Change” to just various arrows representing the ideological direction you want that node to move in. Having toyed with how many discrete spaces on the grid there should be for ideology, I’ve landed on a 5 x 5 grid with for a total of 25 possible “ideologies” for a node to inhabit for now, which does land us close to the original game jams 27 possible states. While I'm not totally convinced, this does feel like the sweet-spot, as more spots make reading the political spectrum at a glance tricky, while less makes moving from one end of the ideological spectrum to another feel too fast.

A similar screen to the previous, but now the nodes are crowded by big political Axes diagrams"

Representing Politics

This has necessitated, or perhaps just sped up, a total HUD re-design. As you can see above, early integrations of this system featured the political axis appearing above each Node like the old HUD. But combining this level of detailed information alongside all of the possible buttons a player might be able to press, alongside all of the information already displayed on the screen that shows how Nodes connect or what actions are being taken, was just overwhelming. It even affected the level design of maps, as they needed to account for the massive amount of space the HUD would take up. To combat this, I’ve made a new, static piece of HUD that sits on the left hand side of the screen that can display the HUD in full, alongside all available player actions. While this does expand the aspect ratio the game is played in from 4:3 to 16:9, it does keep the main game view in 4:3, which makes me happy!**

An interesting consequence of this change was that, at first, I hated how the new menu felt, and for a reason that helped highlight what's core to what I think makes INOCULATE fun and distinct from it's contemporaries: Pace and momentum. In a more traditional RTS, you generally need to first click on a allied unit that you want to act, then then click on the unit that you want them to perform an action on. This multi-step process was something I wanted to avoid, not only because it slows down pacing but also because it lacks a certain kinetic energy. So in INOCULATE, you click on the node you want to act on, choose the action you want and then the game chooses which unit acts for you.*** But by introducing this new side-screen menu, suddenly the player was back to clicking a node on the right side of the screen, then sweeping their mouse across the screen to the left to perform an action, then sweeping the mouse back to the right to line up their next action, and on and on. Maybe this would feel more ok on a phone or tablet, but even so that kinetic, almost clicker-like action of immediately performing actions on a given node was lost.

The solution to this was pretty simple but also really fun: Keep the main action buttons on the node when you click on it, but also have them appear on the menu. If the player wants to move over to the menu for a closer look, the actions are all there. But if they just want to do a sideways glance at the axes and then start clicking away at the node, that is also supported. Having the actions be accessible from both feels great, and means the player can always keep moving the game forward regardless of where their current focus is. I think especially as I keep pushing the UX of the game forward and more info becomes available on either side of the screen, it will really open up the game for players to essentially play the game from whichever screen best suits their strategy at the time.

A wider screen showing a few Nodes. Buttons still appear next to the selected Node but with no Axes, that is instead displayed on the side"

Big Tent Alliances

This all ties into the final new element I will talk about today : Alliances. In the game jam version, a node became allied to the player when they fully believed all the same things the player believed, with allying just stopping that Node from making independent actions. This worked fine, but with a now more diverse board, upcoming new level objectives and the possibility of different ideologies unlocking different abilities, I realized it just wouldn't be always as tactically advantageous or fun to be constantly be pulling Nodes towards your same ideological state. Moreover, the game jam version also has a slight problem in that the player feels like the only true, meaningful political actor, with everyone else being mostly independent in how they spread ideology. I want there to be a notion that other political alliances and coalitions are forming, and that you would need to be trying to stop the spread of your opponents ideology as much as you are spreading your own political ideology.

Thus, I’ve currently landed on the idea that if two nodes are adjacent to each other on the political axes (i.e only one vertical OR horizontal move away from being in the same spot), those nodes are allied. If a string of alliances connects back to the player, then the player can control those nodes. If unconnected to the player, the Nodes will essentially form their own political faction, based on their position on the political spectrumn, and will attempt to advance that faction's ideological goals. This is true even if that faction belongs to same ideology as the player, with those nodes then being essentially rival pollitical collective making their own plays. And if one node could be connected to multiple ideologies, then it’s connected to none, and the factions will have to vie to either pull that node closer, or perhaps even go up the opponent’s chain and try to sever the chain of alliances that led to that stalemate.

This essentially represents a “Big Tent” political alliances, which is yet again a political notion that doesn't necessarily allign with my vision of poltics but does speak again to a political reality: That people sometimes vote or act politically for ideologies that are adjacent to, or even opposed to, their own beliefs if those ideologies are positioned in a certain way. In turn, this also can sort of represent the way factions that are ideoligically alligned can still combat one another, or that large, seemingly un-alligned coalitions can suddenly unite behind a common cause. Meanwhile, from a gameplay perspective, the player is encouraged to form chains of nodes that allow them to get access to wider swaths of the network or special abilities, even though that may go against their ultimate end goal of pulling everyone back towards their base ideology, while also leaving them much more exposed to attack from an enemy. This is also why nodes connected to the selected node are shown in various colours on the political ideology board, as it shows how the various allances they are either already in, or could form, with their neighbouring nodes.

That said, the notion that nodes are able to appropriately act on these alliances is currently mostly theorhetical. Fundamentally uprooting all of your games systems, changing the information they all access and act upon is, as it turns out, a big undertaking! While it’s mostly all gotten there, what’s left is an AI overhaul, to try and make the nodes act in ways that are “smart”, advancing their own ideologies, pursuing alliances and protecting their nodes. This isn’t to try and put the cart before the horse, there are plenty of other systematic changes and additions to come, but it’s reached the point where in testing this version of the game seems to “work” and “is fun”, but tthe now mostly outdated AI fails to imbue the game with stakes and meaningful risk-reward. Fixing that is going to be one of my trickiest overhauls to date, both design and programming-wise, but I think I know how to tackle it, which is an exciting position to be in.

And again, this points to alot of UI / UX overhaul, the most recent of which was making alliances change the colour of connection lines to a colour that alligns with that alliances's ideology. This not only makes it really clear how nodes are connected to one another (though perhaps too clear, a proper “Fog of War” system is on the docket for future implementation), but just kinda looks cool? It does make the current way actions are displayed less clear (they are also currently represented by bright neon lines that slowly move to connect nodes), but I had plans to change those up anyways to make them feel more unique and interesting, so again this just pushes me to tackle that problem. Ask me soon about how I'm planning to make all of this work for colour-blind players too, which will be its own fun task!

The same screen from before but zoomed out, showing various nodes. Some are connected by white lines, but many are connected by yellow, green and red lines, showing their various alliances."

Which all points towards the next devlog! Smarter AI systems, better legibility on actions, maybe Fog of War, maybe even my already semi-implemented concept of “Influencer” nodes. As mentioned, there are some bigger systemic changes to come that are really exciting for me, but getting all of these base systems working in a smaller, simpler scope feels important before I really start pushing everything to it’s limit. I also do want to try and make a couple more levels in the future. I currently have “Tiny tutorial map” and “A large amount of Nodes that can represent 4 factions!”, but making sure the game has enough mechanical variety is key to my goals here. The final game probably will pace out all of the described and yet to be implemented systems over various levels, so it’s ok if things at the moment feel somewhere either side of "flat" or "decision stew". But, like with my goals with the AI, if I can get something that feels almost too complicated and difficult, then it’s much easier to start paring that down to something grokkable and fun. And I think that’s very possible. By next time? Probably not. But I’d love to be wrong!



*This is also where INOCULATE’s framing will come into play. I’m already toying with the notion of the game taking place in the lead-up to an election or series of elections / political events. In this sense, consider any person’s position on the political spectrum less of a “They fully believe in the ideas core to this area of the political spectrum” and more “In what way do they want their government to move” / “In whose name do they take political action in?”, which feels both politically and ludically quite juicy.

**If you’re wondering why I’m attached to the 4:3 ratio, it’s for a couple reasons. For one, as the rest of the aesthetic implies, I want this game to feel somewhat grainy and gritty, like you’re accessing some old system for tracking political thought that hasn’t been updated in a quarter-century. Whether that sticks in up in the air, but it feels like a solid enough base for now and one I want to keep building on. More importantly though, 16:9 creates level design problems, as the player would have significantly easier access to Nodes on the left and right of the screen vs top and bottom, which in turn would drastically change how levels would need to be designed. With 4:3 being much closer to a square aspect ratio, this imbalance is equalled out greatly.

***This is probably the most controversial game design choice I’m making, but I make it with good reason. INOCULATE is, in most ways, less complicated than your average RTS. Often times, you only have one node that could make any given action, so needing to actively select that node would just feel like fluff. However, it's also important to me was that the game feel a bit more like you are a apart of a political movement: You may know what action you want taken, and you can propagate that idea through your movement, but that doesn’t mean you have direct control of who is going to do it. That said, when the player performs an action, I do run that action through a system to determine which allied node should be the “actor”, with the “best” actor being loosely defined as “The Node who has access to the least overall number of interesting actions". How we define a "interesting action" is its own can of worms, but I'll save that for another blog post down the line!